1. Field of the Invention
The present invention relates to a tone generating apparatus for use in electronic musical instruments, such as a synthesizer, an electronic piano and an electronic organ. More particularly, this invention pertains to an interpolation process which is executed when tone wave data is read out from a wave memory incorporated in a tone generating apparatus.
2. Description of the Related Art
Recently, development of acoustic instruments, such as a piano and an organ, into electronic instruments has been active, providing electronic musical instruments, such as an electronic piano and electronic organ. In addition, a synthesizer which generates tones with a unique timbre has been realized as an electronic musical instrument.
These electronic musical instruments have a tone generating apparatus (tone generator) with an incorporated wave memory in which tone wave data is stored. The wave memory has multiple groups of tone wave data stored in association with respective timbres to permit generation of various timbres. One group of tone wave data consists of multiple pieces of tone wave data to generate a predetermined tone waveform.
In such a tone generating apparatus, when a predetermined timbre is specified by operating a panel switch, for example, one group of tone wave data is selected from the multiple groups of tone wave data stored in the wave memory. Each tone wave data constituting the selected group is read out at a speed corresponding to the pitch specified by a key. The read-out tone wave data is reproduced into a tone waveform by a waveform generator, and it is output as a tone wave signal to an acoustic circuit. Upon reception of this tone wave signal, the acoustic circuit drives loudspeakers, a headphone or the like in accordance with the tone wave signal, thereby releasing a musical tone.
Because of the limited capacity of the wave memory, the conventional tone generating apparatus employs the art of compressing tone wave data before storing it in the wave memory.
For instance, a group of tone wave data of a musical tone having a certain timbre is generated by cutting off the tone waveform for that timbre to a predetermined length (the tone waveform normally having multiple periods) and sampling the resulting tone waveform at given intervals for its digitization. Normally, the tone waveform is cut off to a predetermined length from the beginning of this tone signal because the attack portion of a musical tone often contains the characteristic of the timbre.
The digital tone wave data prepared in this manner is stored in the wave memory. The tone wave data stored is read out in a special manner described below, thus generating a musical tone.
To generate a musical tone with a certain timbre, a predetermined length of tone wave data stored in the wave memory (the predetermined length comprising a multi-period waveform) is defined by a loop top address LT and a loop end address LE (both being addresses in the wave memory) and the tone wave data is read out once from the top to the end (to the loop end address LE). Thereafter, the tone wave data in a region surrounded by the loop top address LT and loop end address LE is repeatedly read out. As a result, a sustaining tone waveform is reproduced and a tone signal is generated accordingly.
The pitch is controlled by the speed for reading tone wave data from the wave memory (i.e., read frequency or read speed). In this case, a circuit which alters the read speed of the wave memory in accordance with the pitch has a complicated structure and is therefore large. Further, since the read speed of the wave memory depends on the performance of the elements constituting the wave memory, it is limited.
Actually, a virtual sampling position in the wave memory space (address including a fraction portion in the wave memory), which corresponds to the read speed, is calculated, and, if the virtual sampling position does not match with the actual memory location (integer address) of the tone wave data, the tone wave data stored at addresses preceding and following the virtual sampling position are proportionally distributed to thereby compute tone wave data corresponding to the virtual sampling position. (This processing will be hereunder called "interpolation.") A tone waveform is reproduced on the basis of the thus calculated tone wave data, thereby providing a tone wave signal.
According to the tone generating apparatus with the above structure, however, the circuit for repeatedly reading out the tone wave data in the region surrounded by the loop top address LT and loop end address LE in the wave memory while executing interpolation, is complex and large. This inevitably increases the cost of the tone generating apparatus.